Bayangkan algoritma bukan sebagai rangkaian kode, melainkan sebagai gambaran utama pemecahan masalah yang berdiri mandiri tanpa bergantung pada bahasa pemrograman tertentu. Ini adalah jembatan logika di mana data mentah (Input) dirancang secara cermat melalui serangkaian langkah yang tepat dan terbatas menjadi hasil yang diinginkan (Output). Proses ini bersifat deterministik secara inheren—artinya setiap jalur dapat diprediksi—dan bersifat umum, dirancang untuk menyelesaikan seluruh kategori masalah, bukan hanya satu kejadian acak.
Anatomi Logika Algoritmik
Dalam Matematika Diskret, kita mendefinisikan algoritma sebagai metode bertahap untuk menyelesaikan masalah tertentu. Untuk membedakan daftar tugas sederhana dari algoritma matematis formal, kita mencari dua artefak utama:
- Pseudocode: Deskripsi tingkat tinggi yang mudah dibaca manusia tentang logika. Ia mengabaikan sintaks (seperti titik-koma) dan fokus pada alur.
- Tumpukan Catatan (Trace): Catatan manual tentang status algoritma. Kita mencatat nilai setiap variabel pada setiap langkah untuk memverifikasi bahwa logika tetap benar.
Tujuh Sifat Pembeda
1. Input: Algoritma menerima data eksternal untuk diproses.
2. Output: Algoritma menghasilkan hasil atau solusi.
3. Presisi: Setiap instruksi jelas dan tidak ambigu.
4. Determinisme: Hasil antara bersifat unik dan bergantung hanya pada input dan langkah sebelumnya.
5. Keterbatasan (Finiteness): Proses dijamin akan berhenti setelah jumlah langkah yang terbatas.
6. Ketepatan (Correctness): Output yang dihasilkan benar-benar menyelesaikan masalah yang dimaksudkan.
7. Kemampuan Umum (Generality): Metode ini bekerja untuk berbagai macam input yang mungkin.
Dasar Matematika: Pembagian
Banyak algoritma bergantung pada teori bilangan untuk berfungsi. Misalnya, pemeriksaan ganjil-genap atau verifikasi bilangan prima menggunakan definisi pembagian:
Kita mengatakan bahwa bilangan bulat $d$ membagi $n$ (ditulis $d|n$) jika terdapat bilangan bulat $k$ sedemikian sehingga $n = dk$.
Logika inti ini memungkinkan algoritma melakukan percabangan berdasarkan hubungan numerik, seperti mengidentifikasi digit cek dalam nomor kartu kredit menggunakan Algoritma Luhn.
🎯 Prinsip Utama
Sebuah algoritma adalah formalisasi dari logika. Ia harus terbatas, deterministik, dan benar. Jika ia berputar terus-menerus atau menghasilkan hasil yang ambigu, maka itu adalah prosedur, bukan algoritma formal.